package com.key.modules.service;

import com.key.common.base.RespResult;
import com.key.modules.dto.DriverAddDTO;
import com.key.modules.dto.DriverEditDTO;
import com.key.modules.vo.DriverDetailsVO;

/**
* @author wei
* @description 针对表【driver(司机表)】的数据库操作Service
* @createDate 2023-03-23 19:32:27
*/
public interface DriverService {
    /**
     * 查询司机表（支持条件查询）
     * @author wei
     * @param currentPage 当前页码数
     * @param pageSize 每页显示记录数
     * @param dType 类型
     * @param dTelNum 手机号（条件查询时的可选参数）
     * @param dName 司机姓名（条件查询时的可选参数）
     * @param dAuditStatus 审核状态（条件查询时的可选参数）
     * @return
     */
    RespResult findDriverList(Integer currentPage, Integer pageSize, String dType,
                              String dTelNum, String dName, String dAuditStatus);

    /**
     * 查询司机详情
     * @author wei
     * @param dId 司机ID
     * @return
     */
    DriverDetailsVO findDriverDetails(Integer dId);

    /**
     * 添加司机
     * @author wei
     * @param driverAddDTO 新增司机时需要填写的参数
     * @return
     */
    boolean addDriver(DriverAddDTO driverAddDTO);

    /**
     * 删除司机
     * @author wei
     * @param dId 司机ID
     * @return
     */
    boolean removeDriver(Integer dId);

    /**
     * 修改司机
     * @author wei
     * @param driverEditDTO 修改司机时需要填写的参数
     * @return
     */
    boolean editDriver(DriverEditDTO driverEditDTO);

    /**
     * 审核司机
     * @author wei
     * @param dId 司机ID
     * @param dAuditStatus 审核状态
     * @return
     */
    boolean examineAndVerify(Integer dId, Byte dAuditStatus);
}
